কিভাবে দুটি তারিখ বা সময়ের মধ্যে পার্থক্য নির্ণয় করবেন?

Java Technologies - জাভা টাইম প্যাকেজ (Java.time Package) - Period এবং Duration
208

Java.time Package এর মাধ্যমে দুটি তারিখ বা সময়ের মধ্যে পার্থক্য নির্ণয় করার জন্য Duration এবং Period ক্লাস ব্যবহার করা হয়। এগুলি মূলত তারিখ এবং সময়ের মধ্যে পার্থক্য নির্ণয় করতে সহায়ক।

1. Duration ক্লাস:

Duration ক্লাসটি সময়ের (Time-based) পার্থক্য নির্ণয় করতে ব্যবহৃত হয়, যেমন ঘণ্টা, মিনিট, সেকেন্ড, এবং মিলিসেকেন্ড। এটি সাধারণত LocalTime, LocalDateTime, ZonedDateTime এর মধ্যে পার্থক্য বের করতে ব্যবহৃত হয়।

2. Period ক্লাস:

Period ক্লাসটি তারিখের (Date-based) পার্থক্য নির্ণয় করতে ব্যবহৃত হয়, যেমন বছর, মাস, দিন। এটি সাধারণত LocalDate এর মধ্যে পার্থক্য বের করতে ব্যবহৃত হয়।

দুটি তারিখ বা সময়ের মধ্যে পার্থক্য নির্ণয় করার উদাহরণ:

2.1 সময়ের পার্থক্য নির্ণয়: (Duration Class)

ধরা যাক, আমাদের দুটি LocalTime অবজেক্ট আছে এবং আমরা তাদের মধ্যে সময়ের পার্থক্য বের করতে চাই:

import java.time.*;

public class DurationExample {
    public static void main(String[] args) {
        // Create two LocalTime objects
        LocalTime startTime = LocalTime.of(8, 30);  // 08:30
        LocalTime endTime = LocalTime.of(14, 45);   // 14:45
        
        // Calculate the duration between the two times
        Duration duration = Duration.between(startTime, endTime);
        
        // Print the difference in hours and minutes
        System.out.println("Duration: " + duration.toHours() + " hours " + duration.toMinutes() % 60 + " minutes");
    }
}

আউটপুট:

Duration: 6 hours 15 minutes

ব্যাখ্যা:

  • Duration.between(startTime, endTime): এটি startTime এবং endTime এর মধ্যে সময়ের পার্থক্য বের করে এবং Duration অবজেক্ট ফিরিয়ে দেয়।
  • duration.toHours(): এটি মোট ঘণ্টা বের করে।
  • duration.toMinutes() % 60: এটি মিনিটের পার্থক্য বের করে।

2.2 তারিখের পার্থক্য নির্ণয়: (Period Class)

ধরা যাক, আমাদের দুটি LocalDate অবজেক্ট আছে এবং আমরা তাদের মধ্যে তারিখের পার্থক্য বের করতে চাই:

import java.time.*;

public class PeriodExample {
    public static void main(String[] args) {
        // Create two LocalDate objects
        LocalDate startDate = LocalDate.of(2024, 1, 1);  // 1st January 2024
        LocalDate endDate = LocalDate.of(2024, 12, 31);  // 31st December 2024
        
        // Calculate the period between the two dates
        Period period = Period.between(startDate, endDate);
        
        // Print the difference in years, months, and days
        System.out.println("Period: " + period.getYears() + " years, " + period.getMonths() + " months, " + period.getDays() + " days");
    }
}

আউটপুট:

Period: 0 years, 11 months, 30 days

ব্যাখ্যা:

  • Period.between(startDate, endDate): এটি startDate এবং endDate এর মধ্যে তারিখের পার্থক্য বের করে এবং Period অবজেক্ট ফিরিয়ে দেয়।
  • period.getYears(): এটি বছরগুলোর পার্থক্য বের করে।
  • period.getMonths(): এটি মাসগুলোর পার্থক্য বের করে।
  • period.getDays(): এটি দিনের পার্থক্য বের করে।

3. LocalDateTime এর মধ্যে পার্থক্য নির্ণয়: (Duration and Period)

LocalDateTime অবজেক্টের মধ্যে পার্থক্য নির্ণয় করার জন্য Duration এবং Period উভয়ই ব্যবহার করা যেতে পারে। যেহেতু LocalDateTime সময় এবং তারিখ উভয়কেই ধারণ করে, সুতরাং আপনি যেভাবে সময়ের পার্থক্য বের করেছেন, ঠিক সেভাবেই তারিখের পার্থক্যও বের করতে পারবেন।

LocalDateTime Example:

import java.time.*;

public class LocalDateTimeDifferenceExample {
    public static void main(String[] args) {
        // Create two LocalDateTime objects
        LocalDateTime startDateTime = LocalDateTime.of(2024, 1, 1, 10, 30);  // 1st January 2024, 10:30
        LocalDateTime endDateTime = LocalDateTime.of(2024, 12, 31, 14, 45);  // 31st December 2024, 14:45
        
        // Calculate the duration between the two LocalDateTime objects
        Duration duration = Duration.between(startDateTime, endDateTime);
        
        // Print the difference in days, hours, and minutes
        System.out.println("Duration: " + duration.toDays() + " days, " + duration.toHours() % 24 + " hours, " + duration.toMinutes() % 60 + " minutes");
    }
}

আউটপুট:

Duration: 364 days, 4 hours, 15 minutes

ব্যাখ্যা:

  • Duration.between(startDateTime, endDateTime): এটি LocalDateTime এর মধ্যে সময়ের পার্থক্য বের করে এবং Duration ফেরত দেয়।
  • duration.toDays(): এটি দিনের পার্থক্য বের করে।
  • duration.toHours() % 24: এটি ঘণ্টার পার্থক্য বের করে।
  • duration.toMinutes() % 60: এটি মিনিটের পার্থক্য বের করে।

4. ZonedDateTime এর মধ্যে পার্থক্য নির্ণয়:

ZonedDateTime ক্লাস ব্যবহার করে আপনি টাইমজোন সহ তারিখ এবং সময়ের পার্থক্য বের করতে পারেন।

import java.time.*;

public class ZonedDateTimeExample {
    public static void main(String[] args) {
        // Create two ZonedDateTime objects
        ZonedDateTime startZonedDateTime = ZonedDateTime.of(2024, 1, 1, 10, 30, 0, 0, ZoneId.of("America/New_York"));
        ZonedDateTime endZonedDateTime = ZonedDateTime.of(2024, 12, 31, 14, 45, 0, 0, ZoneId.of("Europe/London"));
        
        // Calculate the duration between the two ZonedDateTime objects
        Duration duration = Duration.between(startZonedDateTime, endZonedDateTime);
        
        // Print the difference in days, hours, and minutes
        System.out.println("Duration: " + duration.toDays() + " days, " + duration.toHours() % 24 + " hours, " + duration.toMinutes() % 60 + " minutes");
    }
}

আউটপুট:

Duration: 364 days, 5 hours, 15 minutes

ব্যাখ্যা:

  • Duration.between(startZonedDateTime, endZonedDateTime): এটি ZonedDateTime অবজেক্টগুলোর মধ্যে সময়ের পার্থক্য বের করে।
  • এটি ZonedDateTime এ টাইমজোনের পার্থক্যও স্বাভাবিকভাবে পরিচালনা করে।

  • Duration এবং Period ক্লাসের মাধ্যমে আপনি সময়ের এবং তারিখের পার্থক্য বের করতে পারেন।
  • Duration ব্যবহার করে সময় (ঘণ্টা, মিনিট, সেকেন্ড) এর পার্থক্য বের করা হয়, এবং Period ব্যবহার করে তারিখ (বছর, মাস, দিন) এর পার্থক্য বের করা হয়।
  • ZonedDateTime এবং LocalDateTime এর মধ্যে পার্থক্য বের করতে এই ক্লাসগুলি অত্যন্ত কার্যকরী, এবং এগুলি টাইমজোন সম্পর্কিত তথ্যও ঠিকভাবে হ্যান্ডেল করে।

Java.time প্যাকেজের এই ক্লাসগুলোর মাধ্যমে আপনি তারিখ ও সময়ের মধ্যে পার্থক্য নির্ণয় করে আপনার অ্যাপ্লিকেশনকে আরো কার্যকরী এবং দক্ষভাবে পরিচালনা করতে পারবেন।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...